package com.dcoinpay.sys.controller;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.dcoinpay.common.utils.Constant;
import com.dcoinpay.sys.entity.oshi.SystemHardwareInfo;

import io.swagger.annotations.Api;

/**
 * 视图
 *
 * @author wenbin
 * @version V1.0
 * @date 2020年3月18日
 */
@Api(tags = "视图")
@Controller
@RequestMapping("/sys")
public class SystemController {

	@GetMapping("/")
	public String login() {
		Subject subject = SecurityUtils.getSubject();
		if (subject.isAuthenticated()) {
			return "redirect:/sys/main";
		}
		return "sys/login";
	}

	@GetMapping("/login")
	public String logout() {
		Subject subject = SecurityUtils.getSubject();
		if (subject.isAuthenticated()) {
			return "redirect:/sys/main";
		}
		return "sys/login";
	}

	@GetMapping("/main")
	public String main(Model model) {
		Subject subject = SecurityUtils.getSubject();
		if (subject != null && subject.getPrincipal() != null) {
			model.addAttribute(Constant.ACCESS_TOKEN, subject.getPrincipal().toString());
		}
		return "sys/main";
	}

	@GetMapping("/user/password")
	public String updatePassword() {
		return "sys/user/update_password";
	}

	@GetMapping("/user/info")
	public String userDetail(Model model) {
		model.addAttribute("flagType", "edit");
		return "sys/user/user_edit";
	}

//    /**
//    * 跳转到页面
//    */
//    @GetMapping("/user/listview")
//    public String userList() {
//        return "sys/user/list";
//    }
//
//
//    @GetMapping("/menus/listview")
//    public String menusList() {
//
//        return "sys/menus/list" ;
//    }

//    @GetMapping("/roles")
//    public String roleList() {
//        return "sys/roles/role_list" ;
//    }

//    @GetMapping("/users")
//    public String userList() {
//        return "sys/users/user_list" ;
//    }
//
//    @GetMapping("/logs")
//    public String logList() {
//        return "sys/logs/log_list" ;
//    }
//
//    @GetMapping("/depts")
//    public String deptList() {
//        return "sys/depts/dept_list" ;
//    }

	@GetMapping("/403")
	public String error403() {
		return "sys/common/403";
	}

	@GetMapping("/404")
	public String error404() {
		return "sys/common/404";
	}

	@GetMapping("/error")
	public String error() {
		return "sys/common/404";
	}

	@GetMapping("/500")
	public String error405() {
		return "sys/common/500";
	}

	@GetMapping("/welcome")
	public String indexHome() {
		return "sys/welcome";
	}

	@GetMapping("/build")
	public String build() {
		return "sys/other/build";
	}

	@GetMapping("/systemInfo")
	public String systemInfo(Model model) {

		SystemHardwareInfo systemHardwareInfo = new SystemHardwareInfo();
		systemHardwareInfo.copyTo();

		model.addAttribute("server", systemHardwareInfo);

		return "sys/other/systemInfo";
	}

//    @GetMapping("/sys/content")
//    public String sysContent() {
//        return "sys/content/list" ;
//    }
//
//    @GetMapping("/sys/dict")
//    public String sysDict() {
//        return "sys/dict/list" ;
//    }
//
//    @GetMapping("/sys/generator")
//    public String sysGenerator() {
//        return "sys/generator/list" ;
//    }

//    @GetMapping("/sys/job")
//    public String sysJob() {
//        return "sys/job/list";
//    }
//
//    @GetMapping("/sys/jobLog")
//    public String sysJobLog() {
//        return "sys/joblog/list";
//    }
//
//    @GetMapping("/sys/files")
//    public String sysFiles() {
//        return "sys/files/list";
//    }
}
